1.Amazon CloudFormation是什麼?
Amazon CloudFormation就像是群組的概念,可利用編程語言或簡單的文字檔把服務統整成一個群組,例如EC2、S3、RDS,正式的名詞稱之為「堆疊」,讓開發者可以不用個別建立及設定 AWS 資源,達到簡化基礎設施管理的作用。
另外前面也有提到,為了增加可用性,開發者往往會在多個可用區域複製同一個應用程式,以便在一個區域無法使用時,讓您的使用者仍然可以在其他區域使用您的應用程式,但有時候同一個應用程式可能關聯個很多不同的服務,例如EC2關聯著資料庫,那此時就會變得很麻煩,但只要使用了Amazon CloudFormation堆疊範本,一切就會變得輕鬆簡單,達到快速複製的效果。
此外,使用AWS CloudFormation 佈建基礎設施時,AWS CloudFormation 範本會明確描述佈建了哪些資源以及設定。因為這些範本都是文字檔案,您只需要追蹤您範本中的差異,便可追蹤您基礎設施的變更,達到輕鬆控制和追蹤的效果。
堆疊是由範本所產生的,而範本的內容就是跟前面所有在主控台設定的資訊是相同的,例如在製作EC2時一開始的機器類型我們選擇的是T2.micro那範本裡就會有一行是“InstanceType”: “T2.micro”。那範本並不是只能用來建立單一環境,只要將不同的參數及條件加入範本中,就可以讓範本更有彈性,也可以用同一個範本建立無數個不同的環境。
下一個小節將實際的為大家做簡單的示範,如何創建一個新的範本,和如何使用這個新的範本去創建一個新的堆疊。
2.實際動手做 - 建立CloudFormation範本及堆疊
Step.1 在主控台中尋找CloudFormation服務並點選
Step.2 接下來要建立新的堆疊,所以請點選「Create stack(建立堆疊)」
Step.3 接下來有三個選擇1.Template is ready(使用現有範本),2.Use a sample template(使用範例範本) 3.Create template in Designer(建立新範本),在這裡選擇第三個,按下「Create template in designer」
Step.4 接下來就會進入此設計畫面,左上方為資源清單,右上方則是範本區域,而下方就是範本。首先把EC2內的VPC拖入右上方的範本區域
Step.5 這時可以注意到下方的範本自動產生變化,但此時還要手動一些屬性,在此範例要輸入網路地址,在第五行的大括號內按下Control+Shift,就會出現屬性清單,選擇「Cidr block」,或者直接輸入,並加上「:“10.0.0.0/16”」,如下圖
Step.6 輸入完後就要建立堆疊了,選取左上方有一個雲且有向上箭頭的符號,接下來就會回到下面這個畫面,看似但這個已經跟一開始不一樣了,因為剛剛那個範本已經自動存在S3桶子裡了,S3的URL也自動幫我們輸入好了,所以此畫面可以直接按下「Next」
Step.7 下一步即是要幫此堆疊輸入一個名字
Step.8 接下來可以設定標籤或加上其他角色,不過這都不是必要了,直接按下「Next」。下一步的Review(檢查)也可以跳過,直接按下「Create」
Step.9 接下可以在Resources看到這個堆疊裡確實新增了一個VPC。最後一步要來驗證是不是真的有創建一個新的VPC,回到主控台後輸入VPC,按下「VPCs」就可以看到所有的VPC,從下圖中可得知確實有新增一個網路地址為10.0.0.0/16的VPC。
3.考前重點大補帖
⦁ CloudFormation 可簡化以重複且可預測的方式建立相關資源群組的服務,以支援您的應用程式。
⦁ CloudFormation是一個全受管服務。
⦁ 範本可建立單一資源堆疊,或由數百個資源組成的堆疊。
⦁ 堆疊是範本產生的資源,也是部署單位。
⦁ 通常只要按下刪除堆疊,堆疊內的所有資源都會被刪除。
⦁ 範本檔是用 JSON 或 YAML 所編寫的文字檔案。
⦁ 可以使用** DependsOn 屬性**控制 CloudFormation 建立資源的順序。
⦁ 當在範本裡填入參數後,可以讓範本變得更有彈性、功能更強。
⦁ 執行 CloudFormation 時有兩個關鍵要求,第一個是範本,第二則是呼叫範本的人員必須要擁有範本中所有服務的
操作許可。
⦁ 對著範本區域按下Control+Shift會產生屬性清單。
⦁ 有三種方法可操作CloudFormation ,AWS主控台、AWS CLI、SDK。
⦁ CloudFormation 會讀取範本檔案。
4.經典歷屆試題
單選題
多選題